/*
 * ManejadorHash.h
 *
 *  Created on: 03/06/2010
 *      Author: Grupo Klow
 */

#ifndef MANEJADORHASH_H_
#define MANEJADORHASH_H_

extern "C" {
#include "../../../HashExtensible/src/HashExtensible.h"
}

#include "ManejadorContexto.h"


class ManejadorHash: public ManejadorContexto{

private:

	HashExtensible * hash;

public:

	ManejadorHash(string nombre_archivo);

	//busca el contexto en el hash... NULL si no existe
	Contexto* buscarContexto(string contextoNombre);

	//inserta un nuevo contexto al hash
	ManejadorContexto::Resultado altaContexto(Contexto* contexto);

	//modifica un Contexto particular segun el campo 'nombre' del 'contexto'
	ManejadorContexto::Resultado modificarContexto(Contexto* contexto);

	//escribe en 'salida' todos los contextos con sus tablas de frecuencias
	void imprimirContextos(FILE * salida);

	~ManejadorHash();
};

#endif /* MANEJADORHASH_H_ */
